<?php
// 应用公共文件

if (!function_exists('successful_response')) {
    /**
     * 统一返回请求成功时的数据响应
     *
     * @param  object|array|null  $result  预期的结果数据
     * @param  string  $message  提示信息
     * @param  int  $statusCode  HTTP 状态码，一般会收到三种状态码范围，2xx 表示请求符合预期，4xx 表示终端提供的信息导致出现错误，5xx 表示服务器出现错误，不常见
     * @return \think\response\Json
     */
    function successful_response(
        $result = null,
        string $message = 'success',
        int $statusCode = 200
    ): \think\response\Json {
        return json([
            'code'   => '0000',
            'msg'    => $message,
            'result' => $result,
        ], $statusCode);
    }
}

if (!function_exists('unexpected_response')) {
    /**
     * 统一返回不符合预期的数据响应
     *
     * @param  int  $errCode  平台错误代码
     * @param  string  $errMsg  错误消息
     * @param  int  $statusCode  HTTP 状态码，一般会收到三种状态码范围，2xx 表示请求符合预期，4xx 表示终端提供的信息导致出现错误，5xx 表示服务器出现错误，不常见
     * @return \think\response\Json
     */
    function unexpected_response(int $errCode, string $errMsg, int $statusCode): \think\response\Json
    {
        return json([
            'code'   => (string) $errCode,
            'msg'    => $errMsg,
            'result' => null,
        ], $statusCode);
    }
}
